package pms.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;

import pms.dao.SperrtagDao;
import pms.om.Sperrtag;

/**
 * <p>
 * Ein Controller, der die Sperrtage editiert
 * </p>
 * <p>
 * ModelAndView Infos
 * <p>
 * Es wird ein Sperrtag anhand seiner ID gesucht, falls es diesen gibt,
 * wird dieser geaendert, ansonsten wird ein neuer Sperrtag angelegt.
 * <ul>
 * <li>title: Ueberschrift dieser View</li>
 * <li>message: Hinweise fuer den Benutzer</li>
 * <li>feiertag: hier wird der gesuchte Sperrtag ausgegeben, falls er 
 * schon angelegt ist, ansonsten wird ein neuer Sperrtag angelegt.</li>
 * </ul>
 * Der Name der ausgebenden View ist: 'editSperrtag.jsp'
 * </p>
 * @see SperrtagDao
 */

public class EditSperrtag extends AbstractController {

	private SperrtagDao sperrtagDao;
	
	public void setSperrtagDao(SperrtagDao sperrtagDao) {
		this.sperrtagDao = sperrtagDao;
	}
	
	public SperrtagDao getSperrtagDao() {
		return sperrtagDao;
	}

	protected ModelAndView handleRequestInternal(
			HttpServletRequest httpServletRequest,
			HttpServletResponse httpServletResponse) throws Exception {
		ModelAndView mv = new ModelAndView();
		try {
			int id = Integer.parseInt(httpServletRequest.getParameter("id"));
			// wenn id nicht geparsed werden kann, dann wird ein neues Objekt angelegt
			mv.addObject("title", "Sperrtag ändern");
			mv.addObject("message", "Hier können Sie den Sperrtag ändern. Klicken Sie dann anschließend auf 'Übernehmen'." +
					" (1 = Sonntag, 2 = Montag, 3 = Dienstag usw...)");
			mv.addObject("sperrtag", sperrtagDao.findById(id));
		} catch (NumberFormatException e) {
			mv.addObject("title", "Neuen Sperrtag eintragen");
			mv.addObject("message", "Bitte geben Sie die Zahl des Sperrtages (Tage, an denen kein Urlaub genommen " +
			"werden kann) ein und klicken Sie anschließend auf 'Übernehmen'." +
					" (1 = Sonntag, 2 = Montag, 3 = Dienstag usw...)");
			mv.addObject("sperrtag", new Sperrtag());
		}
		mv.setViewName("editSperrtag");
		return mv;
	}

}